package com.bilibili.dubbo.api.mongo;

import com.bilibili.model.mongo.Movement;
import com.bilibili.model.mongo.Visitors;
import com.bilibili.model.vo.PageResult;

import java.util.List;

/**
 * @author HuangRongFu
 * 2021/11/21 星期日5:15 下午
 */


public interface MovementApi {

    /**
     * 发布动态
     *
     * @param: movement
     * @Return: null
     */
    void publish(Movement movement);

    /**
     * 用户动态  只是查询个人的
     *
     * @param: page
     * @param: pageSize
     * @param: userId
     * @Return: PageResult
     */
    PageResult findByUserId(Long page, Long pageSize, Long userId);

    /**
     * 好友动态
     *
     * @param: page
     * @param: pageSize
     * @param: userId
     * @Return: List<Movement>
     */
    PageResult findFriendMovement(Long page, Long pageSize, Long userId);

    /**
     * 数据库随机10个动态
     *
     * @return
     */
    List<Movement> RandomMovement();

    /**
     * 通过pid查询动态信息
     *
     * @return
     * @param: pidList
     */
    List<Movement> findByPids(List<Long> pidList);

    /**
     * 查询单条动态
     *
     * @param: userId
     * @Return: MovementsVo
     */
    Movement findMovementById(String movementId);

    /**
     * 谁看过我
     *
     * @param userId
     * @Return: List
     */
    List<Visitors> queryVisitorsList(Long userId, Long date);

    void update(String movementId, Integer state);
}
